package com.tencent.qf.activity.special.area.service.service;

import com.tencent.qf.activity.special.area.service.dal.DO.JdGiftCouponTransferInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tencent.qf.activity.speical.area.api.dto.JdGiftCouponTransferCountDTO;
import com.tencent.qf.activity.speical.area.api.dto.req.SpecialAreaCouponRequest;
import com.tencent.qf.activity.speical.area.api.dto.JdGiftCouponTransferInfoDTO;
import com.tencent.qf.activity.speical.area.api.dto.req.TransferUserListReq;

import java.util.Date;
import java.util.List;

/**
* @author p_haojiawu
* @description 针对表【t_jd_gift_coupon_transfer_info(转链信息表)】的数据库操作Service
* @createDate 2023-08-18 18:54:46
*/
public interface JdGiftCouponTransferInfoService extends IService<JdGiftCouponTransferInfo> {


    /**
     * 获取专区转链次数
     * @param specialAreaId 专区ID
     * @param transferTime 创建时间之后
     * @return
     */
    JdGiftCouponTransferCountDTO getTransferCount(String specialAreaId, Date transferTime);

    /**
     * 获取今天转链数据、 今天以前的转链已核销数据
     * @param specialAreaId 专区ID
     * @param uid 用户UID
     * @return
     */
    List<JdGiftCouponTransferInfoDTO> getTransferInfo(String specialAreaId, String uid);


    /**
     * 获取用户在某个专区下的某个 sku 的转链信息
     * @param specialAreaCouponReq
     * @param queryStartTime
     * @return
     */
    List<JdGiftCouponTransferInfo> userTransferLinkedRecordBySku(SpecialAreaCouponRequest specialAreaCouponReq, Date queryStartTime);

    /**
     * 获取某个商品配置的转链次数
     * @param specialAreaId 商品配置ID
     * @param transferTime 创建时间之后
     * @return
     */
    Long getGoodsTransferCount(Long specialAreaGoodsId, Date transferTime);

    /**
     * 查询用户转链信息
     * @param request
     * @return
     */
    List<JdGiftCouponTransferInfo> transferUserList(TransferUserListReq request);
}
